include $(BASEDIR)/Rules.mk
+# naive OBJS rule gets link order wrong
+SCSIOBJS := scsi.o hosts.o scsicam.o scsi_dma.o scsi_error.o scsi_ioctl.o scsi_lib.o scsi_merge.o scsi_proc.o scsi_queue.o scsi_scan.o scsi_syms.o constants.o sd.o aacraid/aacraid.o aic7xxx/aic7xxx.o megaraid.o
+
default: $(OBJS)
$(MAKE) -C aacraid
$(MAKE) -C aic7xxx
- $(LD) -r -o driver.o $(OBJS) aacraid/aacraid.o aic7xxx/aic7xxx.o
-# $(LD) -r -o driver.o $(OBJS)
+ $(LD) -r -o driver.o $(SCSIOBJS)
clean:
$(MAKE) -C aacraid clean
megaCfg->lock_pend = SPIN_LOCK_UNLOCKED;
megaCfg->lock_scsicmd = SPIN_LOCK_UNLOCKED;
megaCfg->flag = flag;
+#if XENO_KILLED_DELLOGDRV
megaCfg->int_qh = NULL;
megaCfg->int_qt = NULL;
megaCfg->int_qlen = 0;
+#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
megaCfg->dev = pdev;
* logical drive opertion. If it is, queue the commands in the
* internal queue until the delete operation is complete.
*/
+#if XENO_KILLED_DELLOGDRV
if( ! megaCfg->quiescent ) {
+#endif
/* Add SCB to the head of the pending queue */
if (megaCfg->qPendingH == NULL) {
megaCfg->qPendingH = megaCfg->qPendingT = pScb;
DRIVER_UNLOCK (megaCfg);
return 0;
}
+#if XENO_KILLED_DELLOGDRV
}
else {
/* Add SCB to the internal queue */
megaCfg->int_qt->next = NULL;
megaCfg->int_qlen++;
}
+#endif
if (pScb->SCpnt->cmnd[0] == M_RD_IOCTL_CMD_NEW) {
#if XENO_KILLED
mega_del_logdrv(mega_host_config *this_hba, int logdrv)
{
return -ENOSYS;
-#if XENO_KILLED
+#if XENO_KILLED_DELLOGDRV
int rval;
IO_LOCK_T;
DECLARE_WAIT_QUEUE_HEAD(wq);
present: 0, /* Present */\
unchecked_isa_dma: 0, /* Default Unchecked ISA DMA */\
use_clustering: ENABLE_CLUSTERING, /* Enable Clustering */\
+ use_new_eh_code: 1, /* Uses new error handling code */\
}
#endif
// XENO: REMOVED command: megaraid_command, /* Command Function */
int support_random_del; /* Do we support random deletion of logdrvs */
int read_ldidmap; /* set after logical drive deltion. The logical
drive number must be read from the map */
+#if XENO_KILLED_DELLOGDRV
int quiescent; /* a stage reached when delete logical drive needs to
be done. Stop sending requests to the hba till
delete operation is completed */
mega_scb *int_qh; /* commands are queued in the internal queue */
mega_scb *int_qt; /* while the hba is quiescent */
int int_qlen;
+#endif
char logdrv_chan[MAX_CHANNEL+NVIRT_CHAN]; /* logical drive are on
what channels. */
int mega_ch_class;